#include <iostream>
#include <cstring>
using namespace std;

/*
	构造函数可以重载，重载构造函数是为了实现创建对象的多样化
*/

class Cat
{
public:
	//通过猫的构造函数来直接对猫的属性设置
	//我自己写了构造函数(带参数)--》因此系统不会再帮我生成默认的无参构造
	Cat(int _age)
	{
		age=_age;
		cout<<"猫的构造函数版本1带int参数被调用了"<<endl;
	}
	Cat()
	{
		cout<<"猫的构造函数版本2没有带参数被调用了"<<endl;
	}
	Cat(string _name)
	{
		name=_name;
		cout<<"猫的构造函数版本3带string参数被调用了"<<endl;
	}
	Cat(string _name,int _age)
	{
		name=_name;
		age=_age;
		cout<<"猫的构造函数版本4带string和int参数被调用了"<<endl;
	}

private:
	int age;
	string name;
};

int main(int argc,char **argv)
{
	//创建猫的对象
	Cat c1(5);
	Cat c2;
	Cat c3("旺财");
	Cat c4("阿黄",5);
	return 0;	
}